package edu.example;
import java.io.File;
import java.util.TreeMap;
import java.util.Vector;
import java.sql.*;

import javax.swing.JOptionPane;

public class Application 
{
	private TreeMap<String, String> data;
	
	

	
	public Application(){}
	public Application(TreeMap<String, String> initData)
	{
		data = initData;
	}
	
	//Application Property Variables
	//private Vector<Review> reviews = new Vector<Review>();;
	private int NumDesiredReviews = 0;
	
	//Application Methods
	//public void setReviews(Vector<Review> newReviews) { reviews = newReviews;}
	//public Vector<Review> getReviews() {return reviews;}
	
	/*public void addReview(Review newReview)
	{   
		if (reviews.size() >= NumDesiredReviews) 
		{
			JOptionPane.showMessageDialog(null, "No more reviews needed for current application.", "Thank you",JOptionPane.INFORMATION_MESSAGE);
			return;
		}
		else 
		{
			reviews.add(newReview);		                     
		}
	}*/
	
	// Application Data Mutators
	
	public void setApplicantClientID(String ApplicantClientID)				{data.put("ID", ApplicantClientID);}
	public void setApplicantLastName(String initLastName)					{data.put("last_name", initLastName);}
	public void setApplicantFirstName(String ApplicantFirstName)			{data.put("first_name", ApplicantFirstName);}
	public void setApplicantMiddleName(String ApplicantMiddleName)			{data.put("middle_name", ApplicantMiddleName);}
	public void setDateofBirth(String DateofBirth)							{data.put("birth_month", DateofBirth);}
	public void setDOBDay(String DOBDay)									{data.put("birth_day", DOBDay);}
	public void setDOBYear(String DOBYear)									{data.put("birth_year", DOBYear);}
	public void setGender(String Gender)									{data.put("gender", Gender);}
	public void setEthnicity(String Ethnicity)								{data.put("ethnicity", Ethnicity);}
	public void setRace(String Race)										{data.put("race", Race);}
	public void setCountryofCitizenship(String CountryofCitizenship)		{data.put("citizenship", CountryofCitizenship);}
	public void setPermanentResident_yesno(String PermanentResident_yesno)	{data.put("permanent_resident", PermanentResident_yesno);}
	public void setCurrentPhone(String CurrentPhone)						{data.put("phone", CurrentPhone);}
	public void setEmailAddress(String EmailAddress)						{data.put("email_address", EmailAddress);}
	public void setApplicationType(String ApplicationType)					{data.put("specialization", ApplicationType);}
	public void setVerbal(String Verbal)									{data.put("GRE_V", Verbal);}
	public void setVerbalPercentile(String VerbalPercentile)				{data.put("GRE_V_pctile", VerbalPercentile);}
	public void setQuantitative(String Quantitative)						{data.put("GRE_Q", Quantitative);}
	public void setQuantitativePercentile(String QuantitativePercentile)	{data.put("GRE_Q_pctile", QuantitativePercentile);}
	public void setAnalytical(String Analytical)							{data.put("GRE_A", Analytical);}
	public void setAnalyticalPercentile(String AnalyticalPercentile)		{data.put("GRE_A_pctile", AnalyticalPercentile);}
	public void setSubjectTestTaken(String SubjectTestTaken)				{data.put("GRE_subj_name", SubjectTestTaken);}
	public void setGRESubjectScore(String GRESubjectScore)					{data.put("GRE_subj_score", GRESubjectScore);}
	public void setTOEFLScore(String TOEFLScore)							{data.put("TOEFL", TOEFLScore);}
	public void setIELTS(String IELTS)										{data.put("IELTS", IELTS);}
	public void setTOEFLInternet(String TOEFLInternet)						{data.put("TOEFL_internet", TOEFLInternet);}
	public void setProgram(String Program)									{data.put("research_area", Program);}
	public void setIndicateTopics(String IndicateTopics)					{data.put("research_topics", IndicateTopics);}
	public void setUndergradRank(String UndergradRank)						{data.put("ug_rank", UndergradRank);}
	public void setUndergradOutof(String UndergradOutof)					{data.put("ug_out_of", UndergradOutof);}
	public void setGradRank(String GradRank)								{data.put("grad_rank", GradRank);}
	public void setGradOutof(String GradOutof)								{data.put("grad_out_of", GradOutof);}
	public void setTheoryCourseTitle(String CourseTitle)					{data.put("theory_course_title", CourseTitle);}
	public void setTheoryGradingScale(String GradingScale)					{data.put("theory_scale", GradingScale);}
	public void setTheoryGrade(String Grade)								{data.put("theory_grade", Grade);}
	public void setTheoryUSBEquivalent1(String USBEquivalent1)				{data.put("theory_SBU_equiv", USBEquivalent1);}
	public void setAlgoCourseTitle(String CourseTitle)						{data.put("algorithm_course_title", CourseTitle);}
	public void setAlgoGradingScale(String GradingScale)					{data.put("algorithm_scale", GradingScale);}
	public void setAlgoGrade(String Grade)									{data.put("algorithm_grade", Grade);}
	public void setAlgoUSBEquivalent1(String USBEquivalent1)				{data.put("algorithm_SBU_equiv", USBEquivalent1);}
	public void setProLangCourseTitle(String CourseTitle)					{data.put("prog_lang_course_title", CourseTitle);}
	public void setProLangGradingScale(String GradingScale)					{data.put("prog_lang_scale", GradingScale);}
	public void setProLangGrade(String Grade)								{data.put("prog_lang_grade", Grade);}
	public void setProLangUSBEquivalent1(String USBEquivalent1)				{data.put("prog_lang_SBU_equiv", USBEquivalent1);}
	public void setOSCourseTitle(String CourseTitle)						{data.put("os_course_title", CourseTitle);}
	public void setOSGradingScale(String GradingScale)						{data.put("os_scale", GradingScale);}
	public void setOSGrade(String Grade)									{data.put("os_grade", Grade);}
	public void setOSUSBEquivalent1(String USBEquivalent1)					{data.put("os_SBU_equiv", USBEquivalent1);}
	public void setInstitution1(String Institution1)						{data.put("ug_inst", Institution1);}
	public void setUndergradGPA(String UndergradGPA)						{data.put("ug_GPA", UndergradGPA);}
	public void setGradingScale1(String GradingScale1)						{data.put("ug_scale", GradingScale1);}
	public void setYear1GPA(String Year1GPA)								{data.put("ug_GPA1", Year1GPA);}
	public void setYear2GPA(String Year2GPA)								{data.put("ug_GPA2", Year2GPA);}
	public void setYear3GPA(String Year3GPA)								{data.put("ug_GPA3", Year3GPA);}
	public void setYear4GPA(String Year4GPA)								{data.put("ug_GPA4", Year4GPA);}
	public void setYear5GPA(String Year5GPA)								{data.put("ug_GPA5", Year5GPA);}
	public void setInstitution2(String Institution2)						{data.put("grad_inst", Institution2);}
	public void setGradGPA(String GradGPA)									{data.put("grad_GPA", GradGPA);}
	public void setGradingScale2(String GradingScale2)						{data.put("grad_scale", GradingScale2);}
	public void setYear6GPA(String Year6GPA)								{data.put("grad_GPA1", Year6GPA);}
	public void setYear7GPA(String Year7GPA)								{data.put("grad_GPA2", Year7GPA);}
	
	public void setRelatedFile(String filePath)								{data.put("relatedFilePath", filePath);}	
	public void setTier(String Tier)										{data.put("tier", Tier);}
	public void setSBUID(String SBUID)										{data.put("SBU_ID", SBUID);}
	public void setSBUGPA(String SBUGPA)									{data.put("SBU_GPA", SBUGPA);}
	public void setTOEFLComments(String TOEFLComments)						{data.put("TOEFL_Comments", TOEFLComments);}
	public void setSummary(String Summary)									{data.put("summary", Summary);}
	public void setStatus(String s)											{data.put("status", s);}
	public void setNumDesiredReviews(int num) 								{data.put("num_desired_reviews", Integer.toString(num));}
	public void setSubmittedDate(String intiSubittedDate)					{data.put("submission_date",intiSubittedDate );}
	
	// Application Data Accessors
	public TreeMap<String, String> getData()	{return data;}
	
	public String getApplicantClientID()		{return data.get("ID");}
	public String getApplicantLastName()		{return data.get("last_name");}
	public String getApplicantFirstName()		{return data.get("first_name");}
	public String getApplicantMiddleName()		{return data.get("middle_name");}
	public String getDateofBirth()				{return data.get("birth_month");}
	public String getDOBDay()					{return data.get("birth_day");}
	public String getDOBYear()					{return data.get("birth_year");}
	public String getGender()					{return data.get("gender");}
	public String getEthnicity()				{return data.get("ethnicity");}
	public String getRace()						{return data.get("race");}
	public String getCountryofCitizenship()		{return data.get("citizenship");}
	public String getPermanentResident_yesno()	{return data.get("permanent_resident");}
	public String getCurrentPhone()				{return data.get("phone");}
	public String getEmailAddress()				{return data.get("email_address");}
	public String getApplicationType()			{return data.get("specialization");}
	public String getVerbal()					{return data.get("GRE_V");}
	public String getVerbalPercentile()			{return data.get("GRE_V_pctile");}
	public String getQuantitative()				{return data.get("GRE_Q");}
	public String getQuantitativePercentile()	{return data.get("GRE_Q_pctile");}
	public String getAnalytical()				{return data.get("GRE_A");}
	public String getAnalyticalPercentile()		{return data.get("GRE_A_pctile");}
	public String getSubjectTestTaken()			{return data.get("GRE_subj_name");}
	public String getGRESubjectScore()			{return data.get("GRE_subj_score");}
	public String getTOEFLScore()				{return data.get("TOEFL");}
	public String getIELTS()					{return data.get("IELTS");}
	public String getTOEFLInternet()			{return data.get("TOEFL_internet");}
	public String getProgram()					{return data.get("research_area");}
	public String getIndicateTopics()			{return data.get("research_topics");}
	public String getUndergradRank()			{return data.get("ug_rank");}
	public String getUndergradOutof()			{return data.get("ug_out_of");}
	public String getGradRank()					{return data.get("grad_rank");}
	public String getGradOutof()				{return data.get("grad_out_of");}
	public String getTheoryCourseTitle()		{return data.get("theory_course_title");}
	public String getTheoryGradingScale()		{return data.get("theory_scale");}
	public String getTheoryGrade()				{return data.get("theory_grade");}
	public String getTheoryUSBEquivalent1()		{return data.get("theory_SBU_equiv");}
	public String getAlgoCourseTitle()			{return data.get("algorithm_course_title");}
	public String getAlgoGradingScale()			{return data.get("algorithm_scale");}
	public String getAlgoGrade()				{return data.get("algorithm_grade");}
	public String getAlgoUSBEquivalent1()		{return data.get("algorithm_SBU_equiv");}
	public String getProLangCourseTitle()		{return data.get("prog_lang_course_title");}
	public String getProLangGradingScale()		{return data.get("prog_lang_scale");}
	public String getProLangGrade()				{return data.get("prog_lang_grade");}
	public String getProLangUSBEquivalent1()	{return data.get("prog_lang_SBU_equiv");}
	public String getOSCourseTitle()			{return data.get("os_course_title");}
	public String getOSGradingScale()			{return data.get("os_scale");}
	public String getOSGrade()					{return data.get("os_grade");}
	public String getOSUSBEquivalent1()			{return data.get("os_SBU_equiv");}
	public String getInstitution1()				{return data.get("ug_inst");}
	public String getUndergradGPA()				{return data.get("ug_GPA");}
	public String getGradingScale1()			{return data.get("ug_scale");}
	public String getYear1GPA()					{return data.get("ug_GPA1");}
	public String getYear2GPA()					{return data.get("ug_GPA2");}
	public String getYear3GPA()					{return data.get("ug_GPA3");}
	public String getYear4GPA()					{return data.get("ug_GPA4");}
	public String getYear5GPA()					{return data.get("ug_GPA5");}
	public String getInstitution2()				{return data.get("grad_inst");}
	public String getGradGPA()					{return data.get("grad_GPA");}
	public String getGradingScale2()			{return data.get("grad_scale");}
	public String getYear6GPA()					{return data.get("grad_GPA1");}
	public String getYear7GPA()					{return data.get("grad_GPA2");}
	
	public String getTier()						{return data.get("tier");}
	public String getSBUID()					{return data.get("SBU_ID");}
	public String getSBUGPA()					{return data.get("SBU_GPA");}
	public String getTOEFLComments()			{return data.get("TOEFL_Comments");}
	public String getSummary()					{return data.get("summary");}
	public String getNumReviewed() 				{return data.get("numOfview");}
	public String getNumDesiredReviews() 		{return data.get("num_desired_reviews");}
	public String getStatus()					{return data.get("status");}
	public String getRelatedFile()				{return data.get("relatedFilePath");}
	public String getSubmittedDate()			{return data.get("submission_date");}
}
